2.1 Docker的架构

图2-1展示了Docker的架构,这将是本章的核心内容。我们将从高层次视角入手,然后聚焦到每个部分,使用设计好的技巧来巩固理解。

宿主机上的Docker(在编写本书时)分成两个部分:一个具有REST风格API的守护进程,以及一个与守护进程通信的客户端。图2-1展示的是运行着Docker客户端和守护进程的宿主机。

提示

REST风格API使用标准HTTP请求类型,如 GETPOSTDELETE 等,来表示资源及对其执行的操作。在这里,镜像、容器和数据卷等即为被表示的资源。

调用Docker客户端可以从守护进程获取信息或给它发送指令。守护进程是一个服务器,它使用HTTP协议接收来自客户端的请求并返回响应。相应地,它会向其他服务发起请求来发送和接收镜像,同样使用的是HTTP协议。该服务器将接收来自命令行客户端或被授权连接的任何人的请求。守护进程还负责在幕后处理用户的镜像和容器,而客户端充当的是用户与REST风格API之间的媒介。

15.png

图2-1 Docker架构概览

私有Docker注册中心是存储Docker镜像的一项服务,这些镜像可以被任何有相应权限的Docker守护进程所请求。这个注册中心处于内部网络中,不能公开访问,因此被视为是私有的。

宿主机一般坐落在一个私有网络上。在收到请求时,Docker守护进程将连接互联网来获取镜像。

Docker Hub是由Docker公司运营的一个公共的注册中心。互联网上也存在其他公共的注册中心,且Docker守护进程可与之进行交互。

在第1章中,我们说可以将Docker容器分发到任何能运行Docker的地方——这并不完全正确。实际上,只有当守护进程可以被安装到机器上时,容器才能在这台机器上运行。

理解图2-1的关键在于,当用户在自己的机器上运行Docker时,与其进行交互的可能是自己机器上的另一个进程,或者甚至是运行在内部网络或互联网上的服务。

现在,对Docker的结构有了大致的印象,我们来介绍与图2-1中不同部分有关的几个技巧。

results matching ""

    No results matching ""